#pragma once
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
#include<stdbool.h>
typedef int STDataType;

// 线性栈 ： 用顺序表实现 后进先出原则
typedef struct Stack
{
	STDataType* a; 
	int top; 
	int capacity;
}Stack;

// 接口
void AddCapacity(Stack* ps);   // 扩容
void StackInit(Stack* ps);		// 初始化
void StackDestory(Stack* ps);	// 释放栈
void StackPush(Stack* ps, STDataType x);	// 入栈

void StackPrint(Stack* ps); // 任意写的
STDataType StackTop(Stack* ps);	// 取栈顶的数据
void StackPop(Stack* ps);	// 出栈
int StackSize(Stack* ps); // 栈大小

// 栈为空，返回true otherwise 返回false
bool StackEmpty(Stack*  ps);	